Generally, software is licensed for use by a single user or machine or it may be licensed for a predetermined number of users within a given entity. In the latter case, the licenses, which provide authorized use or permission for use on agreed upon terms, which are available for use by a predetermined number of users must be managed in order to prevent unauthorized use of the software by a greater number of users than the authorized predetermined number. Since software developers and companies providing software for commercial use base revenues on the number of licenses authorized and used, license management is a valuable tool for ensuring authorized use and compliance with license terms by the licensee and users of the software.
Typically, software licenses have been managed using a number of license-management techniques, which provide ways of monitoring and controlling authorized software use under licenses, in particular by managing the number of usable instances of software operating at a given time on a given data processing system by users thereon. Unauthorized use is generally based upon the license agreement existing between the software provider and the software user(s); a predetermined number of software copies are permitted for use at any given time in exchange for a fee or royalties paid to the provider by the user.
Conventional software license management techniques generally fall into three categories: (1) user-specific, (2) site-based or node-locked, and (3) floating license management techniques. The second two techniques, site-based or node-locked and floating license management techniques, are generally used on a mutually exclusive basis to manage a predetermined number of authorized licenses for users on a data processing system.
Basically, the site-based or node-locked technique provides for license management by tying a particular license and/or copy of software to a particular computer. As such, each copy of the software for use on a computer includes either a software or hardware mechanism to prevent unauthorized use of the software. Where a software mechanism is used, the software for license management requires the software under license for a given computer to verify with that computer that authorization or license is available for that computer, e.g., using an identification means, such as verification of a unique computer serial number that is specific only to that computer. Alternatively, a hardware mechanism, such as a dongle component, provides for a physical component that must be connected to the computer in order for the software to be used on that computer to function. This technique for software license management for multiple users is physically restrictive in requiring users of particular computers only, which have the software or hardware mechanism that enables use of the software under license.
Also, basically, the floating license technique provides for license management by employing a server computer to manage a predetermined number of licenses for use by client computers connected to the server by a network. Each client computer has access to the software to be used, however, that software is not enabled unless permission to use it has been provided by the server computer. Such permission for use is based upon the number of users presently using the software compared to the number of predetermined, authorized users for that system. When the number of actual users at a given time is less than the maximum number of authorized or licensed users, then permission for additional users is available; when the number of actual users equals the maximum authorized users, then permission is denied at that time. The number of authorized users under a license is monitored by the server computer's receipt of signals or “heartbeats” sent from the client computers connected to the network and using the software under license. Alternatively, the client computers may use the software for a predetermined period of time, at the end of which predetermined period, the user license for a particular client computer expires and another client computer user may use the software for that same predetermined period. Once again, the total number of users at any given time is restricted to the maximum number of users on client computers permitted by the license; management is based upon signaling and/or time-based use during a network connection with the server computer by the client computers. This technique for software license management for multiple users is physicalso ally restrictive in requiring users of computers to be connected to the network in order to use a software under license that is permitted, monitored and controlled by the server computer during the connection to the network.
Thus, the conventional software license management systems and methods do not provide support movement from one computer to another and/or for movement that requires disconnection from a network. In business and use of electronics today, the user is familiar with and prefers to have the convenience of switching between computers and of using laptop or other mobile computers and electronic devices for using software on the go, i.e., moving between locations, traveling by car, train, or airplane, and working while disconnected from a network and reconnecting when back on location with the server computer and the client-server network. It is inconvenient to be unable to continue to use software without having to purchase multiple licenses for each user and client computer, and difficult to manage the licenses by a multiplicity of techniques in order to permit mobility and freedom of use if licenses are available for use as described hereinabove. Furthermore, conventional software license management systems lack the capacity for converting between two mutually exclusive license states for remote connected and selective disconnected use from a network controlling the licenses. Conventional software license management systems and methods lack the capability to address these problems.
Thus, there is a need in the art for a license management system and methods of using same that avoids the foregoing limitations of conventional software license management systems and methods, in particular constraints on physical mechanism or a network connection by a client computer with a license-managing server computer.